//对数据管理页面js进行封装
const utils = {
    //单条数据删除
    del:($, data, tableName, url) =>{
        layer.confirm('真的删除行么',function (index) {
            $.ajax({
                type:'post',
                url:'/Class/'+ tableName +'/del?id='+data.id,
                dataType:'json',
                success:function (res) {
                    utils.crudMsg(res, tableName, url);
                }
            })
            layer.close(index); // 关闭提示框
        })
    },
    //数据操作后返回值处理和表格刷新
    crudMsg:(res, tableName, url) =>{
        let table = layui.table;
        if(res.code==0)
        {
            layer.msg(res.msg);
            table.reload(tableName,{url});//表格重载
        }
        else {layer.msg(res.msg);}
    },
    //多条数据删除
    delete:($, data, tableName, arry) =>{
        if(data.length === 0){
            layer.msg('请至少选择一行');
        }
        else
        {
            //提示框, 用户信息删除
            layer.confirm("确定删除吗？",function () {
                $.ajax({
                    type:'post',
                    url:'/Class/'+ tableName +'/delete',
                    dataType: 'json',
                    data:{ 'ids':arry },
                    traditional:true,//声明上传数据为数组
                    success:function (res) {
                        utils.crudMsg(res, tableName, "/Class/user/getAllUsers");
                    }
                })
                layer.close(index);
            })
        }
    },
    //单元格数据修改
    update: ($, obj, tableName, url) =>{
        let value = obj.value //得到修改后的值
            ,data = obj.data //得到所在行所有键值
            ,field = obj.field; //得到字段
        $.ajax({
            type:"post",
            url:'/Class/'+ tableName +'/update',
            dataType:"json",
            data:{ 'id':data.id,'value':value,'field':field },
            success:function (res) {
                utils.crudMsg(res, tableName, url);
            }
        })
    },
    //动态下拉框
    getOption: ($, url, domeName) =>{
        let form = layui.form;
        let list;
        $.ajax({
            type:'post',
            url: url,
            dataType: 'json',
            data: {},
            async: false,
            success: (res) =>{
                if(res.code == 0){
                    list = res.data;
                    //添加下拉框选项
                    // $("#searchCollege").empty();
                    for (let i in res.data) {
                        $("#" + domeName).append("<option value=\"" + res.data[i].id + "\">" + res.data[i].name + "</option>");
                    }
                    form.render("select");
                }else{
                    layui.msg(res.msg);
                }
            }
        })
        return list;
    },
    //获取id列表
    getIdList: ($, url) =>{
        let list;
        $.ajax({
            type:'post',
            url:url,
            dataType: 'json',
            data: {},
            async: false, // 设置ajax同步执行，才能返回值
            success: (res) =>{
                if(res.code == 0){
                    list = res.data;
                }else{
                    layui.msg(res.msg);
                }
            }
        })
        return list;
    },
    //数据表格单选框状态切换
    radioChange:($, obj, url, id, value, tableName, urls) =>{
        let table = layui.table;
        $.ajax({
            type:'post',
            url:url,
            dataType:'json',
            data:{ id, value, "field": obj.elem.id},
            success:function (res) {
                utils.crudMsg(res, tableName, urls);
            }
        })
    },
    //课表查询
    tableSelect:(table, tableName, data, url)=>{
        table.reload(tableName, {
            url:url,
            where: { //设定异步数据接口的额外参数，任意设
                "courseName":data.field.courseName,
                "realName":data.field.userName,
                "roomCode":data.field.roomCode,
                "classCode":data.field.classCode,
                "year":parseInt(data.field.year),
                "term":parseInt(data.field.term) == 0 ? null:parseInt(data.field.term),
                "week":parseInt(data.field.week),
                "time":data.field.time.replace(/\s*/g,'') // 去除空格
            }
            ,page: {
                curr: 1 //重新从第 1 页开始
            }
        }); //只重载数据
    },
    //时间戳转换为日期格式
    formatDate:(time)=>{
        let now = new Date(time);
        let year=now.getFullYear();  //取得4位数的年份
        let month=now.getMonth()+1;  //取得日期中的月份，其中0表示1月，11表示12月
        let date=now.getDate();      //返回日期月份中的天数（1到31）
        // let hour=now.getHours();     //返回日期中的小时数（0到23）
        // let minute=now.getMinutes(); //返回日期中的分钟数（0到59）
        // let second=now.getSeconds(); //返回日期中的秒数（0到59）
        return year+"-"+month+"-"+date; //+" "+hour+":"+minute+":"+second;
    },
    //获取当前周数
    getWeek:($) =>{
        let time = new Date();
        // 当年的第一天
        const fist_day_of_year = new Date(time.getFullYear(), 0, 1);
        // 毫秒差
        const ms_count= time - fist_day_of_year;
        // 今天是今年的第几天
        const days_count= Math.ceil(ms_count/ 86400000);
        let val = Math.ceil(days_count / 7);
        $('#week').attr('value', val);
    }

}
